//
//  HR_BLELinkConstant.h
//  Pods
//
//  Created by xiaoming on 17/07/24.
//
//

#ifndef HR_BLELinkConstant_h
#define HR_BLELinkConstant_h

#pragma mark - ---------------- Memory ----------------
#define WEAK(weakSelf) __weak typeof(self) weakSelf = self;
#define STRONG(strongSelf,weakSelf) __strong typeof(weakSelf) strongSelf = weakSelf;

#pragma mark - ------------------- XIB --------------------
#define XIB(Class) [[[NSBundle mainBundle] loadNibNamed:NSStringFromClass([Class class]) owner:nil options:nil] firstObject]

#pragma mark - ------------------- String -------------------
#define SF(...) [NSString stringWithFormat:__VA_ARGS__]

#pragma mark - ------------------- SCREEN SIZE -------------------
#define SCREEN_HEIGHT [UIScreen mainScreen].bounds.size.height
#define SCREEN_WIDTH [UIScreen mainScreen].bounds.size.width

#pragma mark - ------------------- HEADER -------------------
#import "Masonry.h"

///------------------------------------------------------
/// @(以下状态码根据'跑视界'所连接跑步机蓝牙文档) 仅供示例
///------------------------------------------------------

/** 指令集 */
typedef NS_ENUM(NSInteger, CommandType) {
    CommandType_SYS_INFO = 0x50,     //获取设备信息
    CommandType_SYS_STATUS,          //获取设备状态
    CommandType_SYS_DATA,            //设备数据
    CommandType_SYS_CONTROL,         //设备控制
    CommandType_SYS_KEY              //模拟按键
};

/** 获取设备信息 */
typedef NS_ENUM(NSInteger, SYS_INFO) {
    INFO_MODEL = 0x00,                  //获取设备机型 (必需实现)
    INFO_DATE,                      //获取设备出厂日期 (若不支持可省略)
    INFO_SPEED,                     //获取设备速度参数 (必需实现)
    INFO_INCLINE,                   //获取设备坡度参数 (若不支持可省略)
    INFO_TOTAL                      //获取设备累计里程 (若不支持可省略)
};

/** 获取设备状态 */
typedef NS_ENUM(NSInteger, SYS_STATUS) {
    STATUS_NORMAL = 0x00,           //待机状态
    STATUS_END,                     //减速已停机状态(还未返回到待机)
    STATUS_START,                   //开始启动状态
    STATUS_RUNNING,                 //运行中状态
    STATUS_STOP,                    //减速停止中状态
    STATUS_ERROR,                   //设备故障状态
    STATUS_SAFETY,                  //安全锁状态
    STATUS_DISRUN                   //禁止启动状态(设备处于不允许运行状态)
};

/** 设备数据 */
typedef NS_ENUM(NSInteger, SYS_DATA) {
    DATA_SPORT = 0x00,              //读取当前运动量
    DATA_INFO,                      //当前运动信息
    DATA_SPEED,                     //速度数据(程式模式)
    DATA_INCLINE,                   //坡度数据(程式或赛事模式)
    DATA_CACHE,                     //指定时间点速度、坡度、心率缓存数据
};

/** 设备控制 */
typedef NS_ENUM(NSInteger, SYS_CONTROL) {
    CONTROL_USER = 0x00,            //写入用户信息
    CONTROL_START,                  //开始启动设备(启动后写入用户信息)
    CONTROL_RUN,                    //写入运行速度、坡度
    CONTROL_STOP,                   //停止设备运行
    CONTROL_SPEED,                  //速度数据(程式模式)
    CONTROL_INCLINE                 //坡度数据(程式或赛事模式)
};

#endif /* HR_BLELinkConstant_h */
